﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category0
{
  public class MT023 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagChoiceDefinition U0007;
    private static SwiftTagSequenceDefinition U0008;
    private static SwiftTagSequenceDefinition U000E;
    private static SwiftTagDefinition U000F;
    private static SwiftTagSubItemDefinition U0010;
    private static SwiftTagSubItemDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagSubItemDefinition U0014;
    private static SwiftTagDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagDefinition U0017;
    private static SwiftTagSubItemDefinition U0018;
    private static SwiftTagDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagSubItemDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSequenceDefinition U001E;
    private static SwiftTagChoiceDefinition U001F;
    private static SwiftTagDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagSubItemDefinition U0081;
    private static SwiftTagSubItemDefinition U0082;
    private static SwiftTagDefinition U0083;
    private static SwiftTagSubItemDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagSubItemDefinition U0087;
    private static SwiftTagSequenceDefinition U0088;
    private static SwiftTagDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagSubItemDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagSequenceDefinition U0092;
    private static SwiftTagDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagSubItemDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagSequenceDefinition U009C;
    private static SwiftTagDefinition U009D;
    private static SwiftTagSubItemDefinition U009E;
    private static SwiftTagSubItemDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagSubItemDefinition U0003U0002;
    private static SwiftTagDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagSequenceDefinition U0006U0002;
    private static SwiftTagDefinition U0007U0002;
    private static SwiftTagSubItemDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagSubItemDefinition U000FU0002;
    private static SwiftTagSubItemDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagDefinition U0013U0002;
    private static SwiftTagSubItemDefinition U0014U0002;
    private static SwiftTagSequenceDefinition U0015U0002;
    private static SwiftTagDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagSubItemDefinition U0018U0002;
    private static SwiftTagSubItemDefinition U0019U0002;
    private static SwiftTagSubItemDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagSubItemDefinition U001CU0002;
    private static SwiftTagDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagSequenceDefinition U001FU0002;
    private static SwiftTagDefinition U007FU0002;
    private static SwiftTagSubItemDefinition U0080U0002;
    private static SwiftTagSubItemDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagSubItemDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSequenceDefinition U0088U0002;
    private static SwiftTagDefinition U0089U0002;
    private static SwiftTagSubItemDefinition U008AU0002;
    private static SwiftTagDefinition U008BU0002;
    private static SwiftTagSubItemDefinition U008CU0002;
    private static SwiftTagSequenceDefinition U008DU0002;
    private static SwiftTagDefinition U008EU0002;
    private static SwiftTagSubItemDefinition U008FU0002;
    private static SwiftTagDefinition U0090U0002;
    private static SwiftTagSubItemDefinition U0091U0002;
    private static SwiftTagSequenceDefinition U0092U0002;
    private static SwiftTagDefinition U0093U0002;
    private static SwiftTagSubItemDefinition U0094U0002;

    [Description("Report Details")]
    public MT023.ReportDetailsClass ReportDetails
    {
      get
      {
        return new MT023.ReportDetailsClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT023.InformationOnTheRetrievedMessages1Class InformationOnTheRetrievedMessages1
    {
      get
      {
        return new MT023.InformationOnTheRetrievedMessages1Class((SwiftElement) this, 0, false);
      }
    }

    [Description("Information on the Retrieved Messages")]
    public MT023.InformationOnTheRetrievedMessages2Class InformationOnTheRetrievedMessages2
    {
      get
      {
        return new MT023.InformationOnTheRetrievedMessages2Class((SwiftElement) this, 0, false);
      }
    }

    public MT023()
      : base(true)
    {
    }

    public MT023(SwiftMessage message)
      : base(message)
    {
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT023.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT023.MessageDefinition = new SwiftMessageDefinition("MT023", "Retrieved Message (History)");
      MT023.U0002 = new SwiftTagSequenceDefinition("ReportDetails", "Report Details");
      MT023.U0003 = new SwiftTagDefinition("SectionNumber_202", "Sequential section number");
      MT023.U0003.TagName = "{202:";
      MT023.U0004 = new SwiftTagSubItemDefinition("SectionNumber", "Sequential section number");
      MT023.U0003.Elements.Add((SwiftDefinitionElement) MT023.U0004);
      MT023.U0002.Elements.Add((SwiftDefinitionElement) MT023.U0003);
      MT023.U0005 = new SwiftTagDefinition("TotalSections_203", "Total number of sections in a multi-section message.");
      MT023.U0005.TagName = "{203:";
      MT023.U0006 = new SwiftTagSubItemDefinition("TotalSections", "Total Sections");
      MT023.U0005.Elements.Add((SwiftDefinitionElement) MT023.U0006);
      MT023.U0002.Elements.Add((SwiftDefinitionElement) MT023.U0005);
      MT023.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT023.U0002);
      MT023.U0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT023.U0007.Multiple = true;
      MT023.U0008 = new SwiftTagSequenceDefinition("InformationOnTheRetrievedMessages1", "");
      MT023.U000E = new SwiftTagSequenceDefinition("InformationOnTheRetrievedMessages1_1", "Information on the Retrieved Messages");
      MT023.U000E.Multiple = true;
      MT023.U000F = new SwiftTagDefinition("InputHistory_280", "Message input history");
      MT023.U000F.TagName = "{280:";
      MT023.U0010 = new SwiftTagSubItemDefinition("Time", "Input time of message");
      MT023.U000F.Elements.Add((SwiftDefinitionElement) MT023.U0010);
      MT023.U0011 = new SwiftTagSubItemDefinition("MessageInputReference", "Message Input Reference");
      MT023.U000F.Elements.Add((SwiftDefinitionElement) MT023.U0011);
      MT023.U0012 = new SwiftTagSubItemDefinition("Acceptance", "Accepted or rejected");
      MT023.U000F.Elements.Add((SwiftDefinitionElement) MT023.U0012);
      MT023.U0013 = new SwiftTagSubItemDefinition("ErrorCode", "Error Code");
      MT023.U0013.Mandatory = false;
      MT023.U000F.Elements.Add((SwiftDefinitionElement) MT023.U0013);
      MT023.U0014 = new SwiftTagSubItemDefinition("LineTag", "line number (in banking message) or field number (in system message)");
      MT023.U0014.Mandatory = false;
      MT023.U000F.Elements.Add((SwiftDefinitionElement) MT023.U0014);
      MT023.U000E.Elements.Add((SwiftDefinitionElement) MT023.U000F);
      MT023.U0015 = new SwiftTagDefinition("MessageUserReference_108", "For FIN, the MUR assigned by the sender of a message");
      MT023.U0015.TagName = "{108:";
      MT023.U0015.Mandatory = false;
      MT023.U0016 = new SwiftTagSubItemDefinition("MessageUserReference", "Mur");
      MT023.U0015.Elements.Add((SwiftDefinitionElement) MT023.U0016);
      MT023.U000E.Elements.Add((SwiftDefinitionElement) MT023.U0015);
      MT023.U0017 = new SwiftTagDefinition("MessageStatus_431", "Message status");
      MT023.U0017.TagName = "{431:";
      MT023.U0017.Mandatory = false;
      MT023.U0018 = new SwiftTagSubItemDefinition("MessageStatus", "Message status");
      MT023.U0017.Elements.Add((SwiftDefinitionElement) MT023.U0018);
      MT023.U000E.Elements.Add((SwiftDefinitionElement) MT023.U0017);
      MT023.U0019 = new SwiftTagDefinition("DeliveryHistory_281", "Message delivery history");
      MT023.U0019.TagName = "{281:";
      MT023.U0019.Mandatory = false;
      MT023.U001A = new SwiftTagSubItemDefinition("Time", "Output time of message");
      MT023.U0019.Elements.Add((SwiftDefinitionElement) MT023.U001A);
      MT023.U001B = new SwiftTagSubItemDefinition("MessageOutputReference", "Message Output Reference");
      MT023.U0019.Elements.Add((SwiftDefinitionElement) MT023.U001B);
      MT023.U001C = new SwiftTagSubItemDefinition("DeliveryResult", "Delivery Result Type");
      MT023.U0019.Elements.Add((SwiftDefinitionElement) MT023.U001C);
      MT023.U001D = new SwiftTagSubItemDefinition("ErrorCode", "Error Code");
      MT023.U001D.Mandatory = false;
      MT023.U0019.Elements.Add((SwiftDefinitionElement) MT023.U001D);
      MT023.U000E.Elements.Add((SwiftDefinitionElement) MT023.U0019);
      MT023.U0008.Elements.Add((SwiftDefinitionElement) MT023.U000E);
      MT023.U001E = new SwiftTagSequenceDefinition("NextRetrievalCriteria", "Next Retrieval Criteria");
      MT023.U001E.Mandatory = false;
      MT023.U001F = new SwiftTagChoiceDefinition("Choice", "");
      MT023.U001F.Multiple = true;
      MT023.U007F = new SwiftTagDefinition("MessageInputReferenceRange_252", "Range of MIRs for retrieval");
      MT023.U007F.TagName = "{252:";
      MT023.U0080 = new SwiftTagSubItemDefinition("MessageInputReferenceRange1", "Range of MIRs for retrieval");
      MT023.U007F.Elements.Add((SwiftDefinitionElement) MT023.U0080);
      MT023.U0081 = new SwiftTagSubItemDefinition("MessageInputReferenceRange2", "Range of MIRs for retrieval");
      MT023.U007F.Elements.Add((SwiftDefinitionElement) MT023.U0081);
      MT023.U0082 = new SwiftTagSubItemDefinition("TimeRange", "Time range");
      MT023.U0082.Mandatory = false;
      MT023.U007F.Elements.Add((SwiftDefinitionElement) MT023.U0082);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U007F);
      MT023.U0083 = new SwiftTagDefinition("MessageOutputReferenceRange_254", "Range of MORs for retrieval");
      MT023.U0083.TagName = "{254:";
      MT023.U0084 = new SwiftTagSubItemDefinition("MessageOutputReferenceRange1", "Range of MORs for retrieval");
      MT023.U0083.Elements.Add((SwiftDefinitionElement) MT023.U0084);
      MT023.U0086 = new SwiftTagSubItemDefinition("MessageOutputReferenceRange2", "Range of MORs for retrieval");
      MT023.U0083.Elements.Add((SwiftDefinitionElement) MT023.U0086);
      MT023.U0087 = new SwiftTagSubItemDefinition("TimeRange", "Time range");
      MT023.U0087.Mandatory = false;
      MT023.U0083.Elements.Add((SwiftDefinitionElement) MT023.U0087);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U0083);
      MT023.U0088 = new SwiftTagSequenceDefinition("MessageInputType_Sequence", "");
      MT023.U0089 = new SwiftTagDefinition("MessageInputType_255", "Message input type");
      MT023.U0089.TagName = "{255:";
      MT023.U008A = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT023.U0089.Elements.Add((SwiftDefinitionElement) MT023.U008A);
      MT023.U008B = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT023.U0089.Elements.Add((SwiftDefinitionElement) MT023.U008B);
      MT023.U008C = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT023.U0089.Elements.Add((SwiftDefinitionElement) MT023.U008C);
      MT023.U008D = new SwiftTagSubItemDefinition("MessageType", "Message Type");
      MT023.U0089.Elements.Add((SwiftDefinitionElement) MT023.U008D);
      MT023.U008E = new SwiftTagSubItemDefinition("Date", "Input date");
      MT023.U0089.Elements.Add((SwiftDefinitionElement) MT023.U008E);
      MT023.U008F = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT023.U008F.Mandatory = false;
      MT023.U0089.Elements.Add((SwiftDefinitionElement) MT023.U008F);
      MT023.U0088.Elements.Add((SwiftDefinitionElement) MT023.U0089);
      MT023.U0090 = new SwiftTagDefinition("FirstISN_1_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT023.U0090.TagName = "{152:";
      MT023.U0090.Mandatory = false;
      MT023.U0091 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT023.U0090.Elements.Add((SwiftDefinitionElement) MT023.U0091);
      MT023.U0088.Elements.Add((SwiftDefinitionElement) MT023.U0090);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U0088);
      MT023.U0092 = new SwiftTagSequenceDefinition("CategoryInputType_Sequence", "");
      MT023.U0093 = new SwiftTagDefinition("CategoryInputType_256", "Category input type");
      MT023.U0093.TagName = "{256:";
      MT023.U0094 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT023.U0093.Elements.Add((SwiftDefinitionElement) MT023.U0094);
      MT023.U0095 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT023.U0093.Elements.Add((SwiftDefinitionElement) MT023.U0095);
      MT023.U0096 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT023.U0093.Elements.Add((SwiftDefinitionElement) MT023.U0096);
      MT023.U0097 = new SwiftTagSubItemDefinition("MessageCategory", "Message category");
      MT023.U0093.Elements.Add((SwiftDefinitionElement) MT023.U0097);
      MT023.U0098 = new SwiftTagSubItemDefinition("Date", "Input date");
      MT023.U0093.Elements.Add((SwiftDefinitionElement) MT023.U0098);
      MT023.U0099 = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT023.U0099.Mandatory = false;
      MT023.U0093.Elements.Add((SwiftDefinitionElement) MT023.U0099);
      MT023.U0092.Elements.Add((SwiftDefinitionElement) MT023.U0093);
      MT023.U009A = new SwiftTagDefinition("FirstISN_2_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT023.U009A.TagName = "{152:";
      MT023.U009A.Mandatory = false;
      MT023.U009B = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT023.U009A.Elements.Add((SwiftDefinitionElement) MT023.U009B);
      MT023.U0092.Elements.Add((SwiftDefinitionElement) MT023.U009A);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U0092);
      MT023.U009C = new SwiftTagSequenceDefinition("InputTimeRange_Sequence", "");
      MT023.U009D = new SwiftTagDefinition("InputTimeRange_257", "Input time range");
      MT023.U009D.TagName = "{257:";
      MT023.U009E = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT023.U009D.Elements.Add((SwiftDefinitionElement) MT023.U009E);
      MT023.U009F = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT023.U009D.Elements.Add((SwiftDefinitionElement) MT023.U009F);
      MT023.U0001U0002 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT023.U009D.Elements.Add((SwiftDefinitionElement) MT023.U0001U0002);
      MT023.U0002U0002 = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT023.U009D.Elements.Add((SwiftDefinitionElement) MT023.U0002U0002);
      MT023.U0003U0002 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT023.U0003U0002.Mandatory = false;
      MT023.U009D.Elements.Add((SwiftDefinitionElement) MT023.U0003U0002);
      MT023.U009C.Elements.Add((SwiftDefinitionElement) MT023.U009D);
      MT023.U0004U0002 = new SwiftTagDefinition("FirstISN_3_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT023.U0004U0002.TagName = "{152:";
      MT023.U0004U0002.Mandatory = false;
      MT023.U0005U0002 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT023.U0004U0002.Elements.Add((SwiftDefinitionElement) MT023.U0005U0002);
      MT023.U009C.Elements.Add((SwiftDefinitionElement) MT023.U0004U0002);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U009C);
      MT023.U0006U0002 = new SwiftTagSequenceDefinition("MessageOutputType_Sequence", "");
      MT023.U0007U0002 = new SwiftTagDefinition("MessageOutputType_258", "Message output type");
      MT023.U0007U0002.TagName = "{258:";
      MT023.U0008U0002 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT023.U0007U0002.Elements.Add((SwiftDefinitionElement) MT023.U0008U0002);
      MT023.U000EU0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT023.U0007U0002.Elements.Add((SwiftDefinitionElement) MT023.U000EU0002);
      MT023.U000FU0002 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT023.U0007U0002.Elements.Add((SwiftDefinitionElement) MT023.U000FU0002);
      MT023.U0010U0002 = new SwiftTagSubItemDefinition("MessageType", "Message Type");
      MT023.U0007U0002.Elements.Add((SwiftDefinitionElement) MT023.U0010U0002);
      MT023.U0011U0002 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT023.U0007U0002.Elements.Add((SwiftDefinitionElement) MT023.U0011U0002);
      MT023.U0012U0002 = new SwiftTagSubItemDefinition("TimeRange", "Output time range");
      MT023.U0012U0002.Mandatory = false;
      MT023.U0007U0002.Elements.Add((SwiftDefinitionElement) MT023.U0012U0002);
      MT023.U0006U0002.Elements.Add((SwiftDefinitionElement) MT023.U0007U0002);
      MT023.U0013U0002 = new SwiftTagDefinition("FirstOSN_1_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT023.U0013U0002.TagName = "{153:";
      MT023.U0013U0002.Mandatory = false;
      MT023.U0014U0002 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT023.U0013U0002.Elements.Add((SwiftDefinitionElement) MT023.U0014U0002);
      MT023.U0006U0002.Elements.Add((SwiftDefinitionElement) MT023.U0013U0002);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U0006U0002);
      MT023.U0015U0002 = new SwiftTagSequenceDefinition("CategoryOutputType_Sequence", "");
      MT023.U0016U0002 = new SwiftTagDefinition("CategoryOutputType_259", "Category output type");
      MT023.U0016U0002.TagName = "{259:";
      MT023.U0017U0002 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT023.U0016U0002.Elements.Add((SwiftDefinitionElement) MT023.U0017U0002);
      MT023.U0018U0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT023.U0016U0002.Elements.Add((SwiftDefinitionElement) MT023.U0018U0002);
      MT023.U0019U0002 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT023.U0016U0002.Elements.Add((SwiftDefinitionElement) MT023.U0019U0002);
      MT023.U001AU0002 = new SwiftTagSubItemDefinition("MessageCategory", "Message Category");
      MT023.U0016U0002.Elements.Add((SwiftDefinitionElement) MT023.U001AU0002);
      MT023.U001BU0002 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT023.U0016U0002.Elements.Add((SwiftDefinitionElement) MT023.U001BU0002);
      MT023.U001CU0002 = new SwiftTagSubItemDefinition("TimeRange", "Output time range");
      MT023.U0016U0002.Elements.Add((SwiftDefinitionElement) MT023.U001CU0002);
      MT023.U0015U0002.Elements.Add((SwiftDefinitionElement) MT023.U0016U0002);
      MT023.U001DU0002 = new SwiftTagDefinition("FirstOSN_2_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT023.U001DU0002.TagName = "{153:";
      MT023.U001DU0002.Mandatory = false;
      MT023.U001EU0002 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT023.U001DU0002.Elements.Add((SwiftDefinitionElement) MT023.U001EU0002);
      MT023.U0015U0002.Elements.Add((SwiftDefinitionElement) MT023.U001DU0002);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U0015U0002);
      MT023.U001FU0002 = new SwiftTagSequenceDefinition("OutputTimeRange_Sequence", "");
      MT023.U007FU0002 = new SwiftTagDefinition("OutputTimeRange_260", "Output Time Range");
      MT023.U007FU0002.TagName = "{260:";
      MT023.U0080U0002 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT023.U007FU0002.Elements.Add((SwiftDefinitionElement) MT023.U0080U0002);
      MT023.U0081U0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT023.U007FU0002.Elements.Add((SwiftDefinitionElement) MT023.U0081U0002);
      MT023.U0082U0002 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT023.U007FU0002.Elements.Add((SwiftDefinitionElement) MT023.U0082U0002);
      MT023.U0083U0002 = new SwiftTagSubItemDefinition("TimeRange", "Output time range");
      MT023.U007FU0002.Elements.Add((SwiftDefinitionElement) MT023.U0083U0002);
      MT023.U0084U0002 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT023.U0084U0002.Mandatory = false;
      MT023.U007FU0002.Elements.Add((SwiftDefinitionElement) MT023.U0084U0002);
      MT023.U001FU0002.Elements.Add((SwiftDefinitionElement) MT023.U007FU0002);
      MT023.U0086U0002 = new SwiftTagDefinition("FirstOSN_3_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT023.U0086U0002.TagName = "{153:";
      MT023.U0086U0002.Mandatory = false;
      MT023.U0087U0002 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT023.U0086U0002.Elements.Add((SwiftDefinitionElement) MT023.U0087U0002);
      MT023.U001FU0002.Elements.Add((SwiftDefinitionElement) MT023.U0086U0002);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U001FU0002);
      MT023.U0088U0002 = new SwiftTagSequenceDefinition("RetrievalErrorCode_1_Sequence", "");
      MT023.U0089U0002 = new SwiftTagDefinition("RetrievalErrorCode_1_421", "Reason why the retrieval request cannot be satisfied");
      MT023.U0089U0002.TagName = "{421:";
      MT023.U008AU0002 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "Retrieval Error Code");
      MT023.U0089U0002.Elements.Add((SwiftDefinitionElement) MT023.U008AU0002);
      MT023.U0088U0002.Elements.Add((SwiftDefinitionElement) MT023.U0089U0002);
      MT023.U008BU0002 = new SwiftTagDefinition("FirstISN_4_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT023.U008BU0002.TagName = "{152:";
      MT023.U008BU0002.Mandatory = false;
      MT023.U008CU0002 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT023.U008BU0002.Elements.Add((SwiftDefinitionElement) MT023.U008CU0002);
      MT023.U0088U0002.Elements.Add((SwiftDefinitionElement) MT023.U008BU0002);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U0088U0002);
      MT023.U008DU0002 = new SwiftTagSequenceDefinition("RetrievalErrorCode_2_Sequence", "");
      MT023.U008EU0002 = new SwiftTagDefinition("RetrievalErrorCode_2_421", "Reason why the retrieval request cannot be satisfied");
      MT023.U008EU0002.TagName = "{421:";
      MT023.U008FU0002 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "Retrieval Error Code");
      MT023.U008EU0002.Elements.Add((SwiftDefinitionElement) MT023.U008FU0002);
      MT023.U008DU0002.Elements.Add((SwiftDefinitionElement) MT023.U008EU0002);
      MT023.U0090U0002 = new SwiftTagDefinition("FirstOSN_4_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT023.U0090U0002.TagName = "{153:";
      MT023.U0090U0002.Mandatory = false;
      MT023.U0091U0002 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT023.U0090U0002.Elements.Add((SwiftDefinitionElement) MT023.U0091U0002);
      MT023.U008DU0002.Elements.Add((SwiftDefinitionElement) MT023.U0090U0002);
      MT023.U001F.Elements.Add((SwiftDefinitionElement) MT023.U008DU0002);
      MT023.U001E.Elements.Add((SwiftDefinitionElement) MT023.U001F);
      MT023.U0008.Elements.Add((SwiftDefinitionElement) MT023.U001E);
      MT023.U0007.Elements.Add((SwiftDefinitionElement) MT023.U0008);
      MT023.U0092U0002 = new SwiftTagSequenceDefinition("InformationOnTheRetrievedMessages2", "Information on the Retrieved Messages");
      MT023.U0093U0002 = new SwiftTagDefinition("RetrievalErrorCode_421", "Reason why the retrieval request cannot be satisfied");
      MT023.U0093U0002.TagName = "{421:";
      MT023.U0094U0002 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "Retrieval Error Code");
      MT023.U0093U0002.Elements.Add((SwiftDefinitionElement) MT023.U0094U0002);
      MT023.U0092U0002.Elements.Add((SwiftDefinitionElement) MT023.U0093U0002);
      MT023.U0007.Elements.Add((SwiftDefinitionElement) MT023.U0092U0002);
      MT023.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT023.U0007);
    }

    public class ReportDetailsClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT023.U0002;
        }
      }

      [Description("Sequential section number")]
      public Tag202 SectionNumber_202
      {
        get
        {
          return new Tag202((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0003);
        }
      }

      [Description("Sequential section number")]
      public Tag202 Tag202_SectionNumber
      {
        get
        {
          return this.SectionNumber_202;
        }
      }

      [Description("Total number of sections in a multi-section message.")]
      public Tag203 TotalSections_203
      {
        get
        {
          return new Tag203((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0005);
        }
      }

      [Description("Total number of sections in a multi-section message.")]
      public Tag203 Tag203_TotalSections
      {
        get
        {
          return this.TotalSections_203;
        }
      }

      internal ReportDetailsClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class InformationOnTheRetrievedMessages1Class : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT023.U0008;
        }
      }

      [Description("Information on the Retrieved Messages")]
      public MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class[] InformationOnTheRetrievedMessages1_1
      {
        get
        {
          int index = -1;
          List<MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class> list = new List<MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class>();
          int count;
          do
          {
            ++index;
            MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class retrievedMessages11Class = new MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) retrievedMessages11Class).Count;
            if (count > 0)
              list.Add(retrievedMessages11Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Next Retrieval Criteria")]
      public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass NextRetrievalCriteria
      {
        get
        {
          MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass retrievalCriteriaClass = new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) retrievalCriteriaClass).Count > 0)
            return retrievalCriteriaClass;
          else
            return (MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass) null;
        }
      }

      internal InformationOnTheRetrievedMessages1Class(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class AddInformationOnTheRetrievedMessages1_1()
      {
        return new MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class((SwiftElement) this, this.InformationOnTheRetrievedMessages1_1.Length, true);
      }

      public void RemoveInformationOnTheRetrievedMessages1_1(MT023.InformationOnTheRetrievedMessages1Class.InformationOnTheRetrievedMessages1_1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass AddNextRetrievalCriteria()
      {
        return this.NextRetrievalCriteria ?? new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass((SwiftElement) this, 0, true);
      }

      public void RemoveNextRetrievalCriteria(MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class InformationOnTheRetrievedMessages1_1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT023.U000E;
          }
        }

        [Description("Message input history")]
        public Tag280 InputHistory_280
        {
          get
          {
            return new Tag280((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U000F);
          }
        }

        [Description("Message input history")]
        public Tag280 Tag280_InputHistory
        {
          get
          {
            return this.InputHistory_280;
          }
        }

        [Description("For FIN, the MUR assigned by the sender of a message")]
        public Tag108 MessageUserReference_108
        {
          get
          {
            return new Tag108((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0015);
          }
        }

        [Description("For FIN, the MUR assigned by the sender of a message")]
        public Tag108 Tag108_MessageUserReference
        {
          get
          {
            return this.MessageUserReference_108;
          }
        }

        [Description("Message status")]
        public Tag431 MessageStatus_431
        {
          get
          {
            return new Tag431((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0017);
          }
        }

        [Description("Message status")]
        public Tag431 Tag431_MessageStatus
        {
          get
          {
            return this.MessageStatus_431;
          }
        }

        [Description("Message delivery history")]
        public Tag281 DeliveryHistory_281
        {
          get
          {
            return new Tag281((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0019);
          }
        }

        [Description("Message delivery history")]
        public Tag281 Tag281_DeliveryHistory
        {
          get
          {
            return this.DeliveryHistory_281;
          }
        }

        internal InformationOnTheRetrievedMessages1_1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class NextRetrievalCriteriaClass : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT023.U001E;
          }
        }

        [Description("Range of MIRs for retrieval")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag252 MessageInputReferenceRange_252
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag252((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U007F);
          }
        }

        [Description("Range of MIRs for retrieval")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag252 Tag252_MessageInputReferenceRange
        {
          get
          {
            return this.MessageInputReferenceRange_252;
          }
        }

        [Description("Range of MORs for retrieval")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag254 MessageOutputReferenceRange_254
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag254((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0083);
          }
        }

        [Description("Range of MORs for retrieval")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag254 Tag254_MessageOutputReferenceRange
        {
          get
          {
            return this.MessageOutputReferenceRange_254;
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass MessageInputType_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass CategoryInputType_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass InputTimeRange_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass MessageOutputType_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass CategoryOutputType_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass OutputTimeRange_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass RetrievalErrorCode_1_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass RetrievalErrorCode_2_Sequence
        {
          get
          {
            return new MT023.InformationOnTheRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass((SwiftElement) this, 0, false);
          }
        }

        internal NextRetrievalCriteriaClass(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public class Tag252 : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("252", value);
            }
          }

          internal Tag252(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }

        public class Tag254 : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("254", value);
            }
          }

          internal Tag254(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }

        public class MessageInputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U0088;
            }
          }

          [Description("Message input type")]
          public Tag255 MessageInputType_255
          {
            get
            {
              return new Tag255((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0089);
            }
          }

          [Description("Message input type")]
          public Tag255 Tag255_MessageInputType
          {
            get
            {
              return this.MessageInputType_255;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_1_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0090);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_1
          {
            get
            {
              return this.FirstISN_1_152;
            }
          }

          internal MessageInputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class CategoryInputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U0092;
            }
          }

          [Description("Category input type")]
          public Tag256 CategoryInputType_256
          {
            get
            {
              return new Tag256((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0093);
            }
          }

          [Description("Category input type")]
          public Tag256 Tag256_CategoryInputType
          {
            get
            {
              return this.CategoryInputType_256;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_2_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U009A);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_2
          {
            get
            {
              return this.FirstISN_2_152;
            }
          }

          internal CategoryInputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class InputTimeRange_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U009C;
            }
          }

          [Description("Input time range")]
          public Tag257 InputTimeRange_257
          {
            get
            {
              return new Tag257((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U009D);
            }
          }

          [Description("Input time range")]
          public Tag257 Tag257_InputTimeRange
          {
            get
            {
              return this.InputTimeRange_257;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_3_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0004U0002);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_3
          {
            get
            {
              return this.FirstISN_3_152;
            }
          }

          internal InputTimeRange_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class MessageOutputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U0006U0002;
            }
          }

          [Description("Message output type")]
          public Tag258 MessageOutputType_258
          {
            get
            {
              return new Tag258((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0007U0002);
            }
          }

          [Description("Message output type")]
          public Tag258 Tag258_MessageOutputType
          {
            get
            {
              return this.MessageOutputType_258;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_1_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0013U0002);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_1
          {
            get
            {
              return this.FirstOSN_1_153;
            }
          }

          internal MessageOutputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class CategoryOutputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U0015U0002;
            }
          }

          [Description("Category output type")]
          public Tag259 CategoryOutputType_259
          {
            get
            {
              return new Tag259((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0016U0002);
            }
          }

          [Description("Category output type")]
          public Tag259 Tag259_CategoryOutputType
          {
            get
            {
              return this.CategoryOutputType_259;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_2_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U001DU0002);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_2
          {
            get
            {
              return this.FirstOSN_2_153;
            }
          }

          internal CategoryOutputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class OutputTimeRange_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U001FU0002;
            }
          }

          [Description("Output Time Range")]
          public Tag260 OutputTimeRange_260
          {
            get
            {
              return new Tag260((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U007FU0002);
            }
          }

          [Description("Output Time Range")]
          public Tag260 Tag260_OutputTimeRange
          {
            get
            {
              return this.OutputTimeRange_260;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_3_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0086U0002);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_3
          {
            get
            {
              return this.FirstOSN_3_153;
            }
          }

          internal OutputTimeRange_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class RetrievalErrorCode_1_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U0088U0002;
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 RetrievalErrorCode_1_421
          {
            get
            {
              return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0089U0002);
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 Tag421_RetrievalErrorCode_1
          {
            get
            {
              return this.RetrievalErrorCode_1_421;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_4_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U008BU0002);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_4
          {
            get
            {
              return this.FirstISN_4_152;
            }
          }

          internal RetrievalErrorCode_1_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class RetrievalErrorCode_2_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT023.U008DU0002;
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 RetrievalErrorCode_2_421
          {
            get
            {
              return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U008EU0002);
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 Tag421_RetrievalErrorCode_2
          {
            get
            {
              return this.RetrievalErrorCode_2_421;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_4_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0090U0002);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_4
          {
            get
            {
              return this.FirstOSN_4_153;
            }
          }

          internal RetrievalErrorCode_2_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }
      }
    }

    public class InformationOnTheRetrievedMessages2Class : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT023.U0092U0002;
        }
      }

      [Description("Reason why the retrieval request cannot be satisfied")]
      public Tag421 RetrievalErrorCode_421
      {
        get
        {
          return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT023.U0093U0002);
        }
      }

      [Description("Reason why the retrieval request cannot be satisfied")]
      public Tag421 Tag421_RetrievalErrorCode
      {
        get
        {
          return this.RetrievalErrorCode_421;
        }
      }

      internal InformationOnTheRetrievedMessages2Class(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }
  }
}
